package ReferenceDemo;

import java.lang.ref.SoftReference;

/**
 * 作者  Administrator
 * 时间  2017/1/18 12:54
 * 文件  JAVAOOM
 * 描述  软引用测试
 * 1、本身需要一个强引用对象
 * 2、软引用会持有这个强引用对象，从而延长gc周期
 *
 */
public class SoftReferenceTest {
	public static void main(String[] args) {
		A a = new A();
		SoftReference<A> aSoftReference = new SoftReference<A>(a);
		a=null;//取出栈内存中的引用
		if (aSoftReference.get()==null){
			System.out.println("a对象被回收了");
		}else {
			System.out.println("a对象没有被回收呢");
		}
		System.gc();
		try {
			Thread.sleep(100);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		if (aSoftReference.get()==null){
			System.out.println("a对象被回收了");
		}else {
			System.out.println("a对象没有被回收呢");
		}
	}

	/**
	 * 运行结果：
	 * a对象没有被回收呢
	 * a对象没有被回收呢
	 * */

}

